package com.gitee.cirnochat.login.service;

import com.gitee.cirnochat.login.model.vo.req.UserEmailCodeLoginRequest;
import com.gitee.cirnochat.login.model.vo.req.UserEmailPasswordLoginRequest;
import com.gitee.cirnochat.login.service.function.UserLoginStartCallBack;
import com.gitee.cirnochat.login.service.function.UserLoginSuccessCallBack;
import com.gitee.cirnochat.login.service.function.UserLogoutCallBack;
import com.gitee.cirnochat.login.service.function.UserRefreshTokenCallBack;
import com.gitee.cirnochat.user.model.vo.resp.UserVo;

public interface UserLoginService {
    UserVo emailCodeLogin(UserEmailCodeLoginRequest request, String deviceId, UserLoginStartCallBack onLoginStart, UserLoginSuccessCallBack onLoginSuccess);

    UserVo emailPasswordLogin(UserEmailPasswordLoginRequest request,String deviceId, UserLoginStartCallBack onLoginStart, UserLoginSuccessCallBack onLoginSuccess);

    void scanQrCodeLogin(String qrCodeId, Long userId);

    UserVo getLoginQrCodeResult(String qrCodeId, String deviceId , UserLoginStartCallBack onLoginStart, UserLoginSuccessCallBack onLoginSuccess);

    void refreshToken(String refreshToken,Long userId , String deviceId , UserRefreshTokenCallBack onRefreshToken);

    void logout(Long userId , String deviceId, UserLogoutCallBack onLogout);

}
